(deftemplate animal (slot nume)(slot sex)(slot greutate))
(deftemplate arca (slot pozitie)(slot nume))

(deffacts myFacts
    (animal(nume soarece)(sex m)(greutate 1))
    (animal(nume soarece)(sex f)(greutate 2))
    (animal(nume veverita)(sex m)(greutate 3))
    (animal(nume veverita)(sex f)(greutate 4))
    (animal(nume pisica)(sex m)(greutate 5))
    (animal(nume pisica)(sex f)(greutate 6))
    (animal(nume caine)(sex m)(greutate 7))
    (animal(nume caine)(sex f)(greutate 8))
    (animal(nume vaca)(sex m)(greutate 9))
    (animal(nume vaca)(sex f)(greutate 10))
    (animal(nume elefant)(sex m)(greutate 11))
    (animal(nume elefant)(sex f)(greutate 12))
    )
(defglobal ?*contor* = 1)
(defrule asezareArca
    ?id <- (animal (nume ?n) (greutate ?i)) 
    =>
    (assert (arca (pozitie ?*contor*) (nume ?n)))
    (++ ?*contor*)
)
(run)
(facts)